//
//  QXN_ToolKit.h
//  QXN_Bird
//
//  Created by chou on 15/7/1.
//  Copyright (c) 2015年 chou. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface AKToolKit : NSObject

/**
 *  设置按钮普通状态颜色和选中颜色
 *
 *  @param color       普通状态颜色
 *  @param selectColor 选中时颜色
 */
+ (void)setButtonTitleColor:(UIColor *)color SelectColor:(UIColor *)selectColor Button:(UIButton *)button;

/**
 *  生成UILabel
 *
 *  @param frame label frame
 *  @param color 字体颜色
 *  @param text  文本内容
 *  @param font  字体大小
 *  @param align 对齐方式
 *  @param tag   tag
 *
 *  @return UILabel
 */
+ (UILabel *)createLabel:(CGRect)frame andTextColor:(UIColor *)color
                 andText:(NSString *)text andFont:(UIFont *)font
                andAlign:(NSTextAlignment)align Tag:(int)tag;

/**
 *  生成UIButton
 *
 *  @param frame   button frame
 *  @param title   标题
 *  @param color   标题颜色
 *  @param imgname 背景图片
 *
 *  @return UIButton
 */
+ (UIButton *)createButton:(CGRect)frame Title:(NSString *)title
                TitleColor:(UIColor *)color Bgimage:(NSString *)imgname
                       Tag:(int)tag Font:(UIFont *)font;

/**
 *  生成UIView
 *
 *  @param frame view frame
 *  @param color 背景颜色
 *
 *  @return UIView
 */
+ (UIView *)createView:(CGRect)frame BackColor:(UIColor *)color Tag:(int)tag;

/**
 *  自动适应
 *
 *  @param value                           值
 *  @param fontSize                        字体大小
 *  @param width                           宽度
 *
 *  @return 高度
 */
+ (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width;

/**
 *  自动适应，获取跨度
 *
 *  @param value    值
 *  @param fontSize 字体大小
 *  @param height   高度
 *
 *  @return 宽度
 */
+ (float)widthForString:(NSString *)value fontSize:(float)fontSize andHeight:(float)height;

/**
 *  将图片处理成圆形
 *
 *  @param image 原始图片
 *  @param inset 圆形
 *  @param width 宽度
 *  @param color 边框颜色
 *
 *  @return 处理后的图片
 */
+ (UIImage *)ellipseImage: (UIImage *) image withInset: (CGFloat) inset withBorderWidth:(CGFloat)width withBorderColor:(UIColor*)color;

/**
 *  textView高度自适应
 *
 *  @param text 文本
 *
 *  @return 自适应高度
 */
+ (CGFloat)heightFromUITextView:(NSString *)text Frame:(CGRect)frame;

/**
 *  根据颜色生成一张纯色图片
 *
 *  @param color 颜色
 *
 *  @return 图片
 */
+ (UIImage *)createImageWithColor:(UIColor *)color;

/**
 *  按钮文字左对齐样式
 *
 *  @param button 按钮
 *
 */
+ (void)ButtonTextLeftStyle:(UIButton *)button;

/**
 *  读取plist文件内容
 *
 *  @param filename plist文件名称
 *
 *  @return 内容数组
 */
+ (NSArray *)arrayFromPlist:(NSString *)filename;

/**
 *  读取plist文件
 *
 *  @param filename plist文件名称
 *
 *  @return 字典
 */
+ (NSDictionary *)dictionaryFromPlist:(NSString *)filename;

/**
 *  获取城市编号
 *
 *  @param cityname 城市名称
 *
 *  @return 城市编号
 */
+ (int)returnCityIdFromCityName;

/**
 *  根据城市编号获取城市名
 *
 *  @param cityid 城市编号
 *
 *  @return 城市名称
 */
+ (NSString *)getCityNameById:(int)cityid;

/**
 *  时间格式化
 *
 *  @param date 需要格式化的时间
 *
 *@param format 时间格式 如 yyyy-mm-dd
 *
 *  @return 格式化之后的时间
 */
+ (NSString *)formatNSDate:(NSDate *)date formatter:(NSString *)format;

/**
 *  NSString 转 NSDate
 *
 *  @param dateStr 时间字符串
 *
 *  @return NSDate
 */
+ (NSDate *)convertDateFromString:(NSString *)dateStr;


+ (UIImage*)circleImage:(UIImage*)image withParam:(CGFloat)inset;

/**
 *  压缩图片
 *
 *  @param image   图片
 *  @param newSize 压缩尺寸
 *
 *  @return 新图片
 */
+ (UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;

/**
 *  农历转换
 *
 *  @param date 公历
 *
 *  @return 农历
 */
+(NSString*)getChineseCalendarWithDate:(NSDate *)date;

/**
 *  计算星期
 *
 *  @param date 公历
 *
 *  @return 星期
 */
+ (NSString *)getWeekDayByDate:(NSDate *)date;

/**
 *  获取所有城市
 *
 *  @return 所有城市
 */
+ (NSArray *)allcityByText;

/**
 *  获取搜索记录
 */
+ (NSArray *)getSearchHistory;

/**
 *  记录搜索
 *
 *  @param keyword 关健字
 */
+ (void)writeHistory:(NSString *)keyword;

/**
 *  根据名称获取配置信息id
 *
 *  @param title
 *  @param filename
 *
 *  @return
 */
+ (int)getIdByName:(NSString *)title filename:(NSString *)filename;

/**
 *  根据配置信息id获取名称
 *
 *  @param ID
 *  @param filename
 *
 *  @return
 */
+ (NSString *)getNameById:(int)ID filename:(NSString *)filename;

/**
 *  对象转成json
 *
 *  @param object 对象
 *
 *  @return json字符串
 */
+ (NSString*)DataTOjsonString:(id)object;

/**
 *  NSString to NSDate
 *
 *  @param dateString
 *
 *  @return
 */
+ (NSDate *)dateFromString:(NSString *)dateString;

@end
